//package com.lepu.app.fun.chat.adapter;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import android.annotation.SuppressLint;
//import android.app.Activity;
//import android.content.Context;
//import android.content.Intent;
//import android.text.TextUtils;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.BaseAdapter;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//import android.widget.ProgressBar;
//import android.widget.TextView;
//
//import com.app.utils.LoginUtil;
//import com.app.utils.SdLocal;
//import com.app.utils.Setting;
//import com.core.lib.application.BaseFragmentActivity;
//import com.core.lib.core.BitmapManager;
//import com.core.lib.utils.main.ImageUtilBase;
//import com.core.lib.utils.main.UIHelper;
//import com.core.lib.utils.photo.UniversalImageLoadTool;
//import com.core.lib.widget.CircularImageView;
//import com.core.lib.widget.MyDialog;
//import com.lepu.app.fun.chat.bean.BeanStaffEntity;
//import com.lepu.app.fun.chat.bean.ChatMessage;
//import com.lepu.app.fun.chat.bean.Media;
//import com.lepu.app.fun.chat.util.ChatConst;
//import com.lepu.app.fun.chat.util.ChatSendListener;
//import com.lepu.app.fun.chat.util.Constants;
//import com.lepu.app.fun.chat.util.DateUtil;
//import com.lepu.app.fun.chat.util.ManagerClipborad;
//import com.lepu.app.fun.chat.util.VoicePlayClickListener;
//import com.lepu.app.main.activity.AppImageBroswerActivity;
//import com.lepu.pasm.R;
//
//public class ChatMessageAdapterNew extends BaseAdapter {
//
//	private LayoutInflater mLayoutInflater = null;
//	private Context mContext = null;
//	private List<ChatMessage> mArrayList = null;
//	private int mType = ChatConst.TYPE_ONLINE_CHAT_ONLINE;
//	private ChatSendListener mChatSendListener;
//	private List<String> mImageArrayList = new ArrayList<String>();
//
//	public ChatMessageAdapterNew(Context context,
//			ChatSendListener chatSendListener, List<ChatMessage> arrayList,
//			int type) {
//		mContext = context;
//		mLayoutInflater = LayoutInflater.from(context);
//		mArrayList = arrayList;
//		mType = type;
//		mChatSendListener = chatSendListener;
//
//		// 初始化图片数组
//		if (mArrayList != null && mArrayList.size() > 0) {
//			for (ChatMessage item : arrayList) {
//				if (item.getMessageType() == Constants.Chat.CHAT_MESSAGE_TYPE_IMAGE) {
//					mImageArrayList.add(item.getMedia().getFullName());
//				}
//			}
//		}
//	}
//
//	@Override
//	public void notifyDataSetChanged() {
//
//		if (mArrayList != null && mArrayList.size() > 0) {
//			ChatMessage endMessage = mArrayList.get(mArrayList.size() - 1);
//			if (endMessage.getMessageType() == Constants.Chat.CHAT_MESSAGE_TYPE_IMAGE) {
//				mImageArrayList.add(endMessage.getMedia().getFullName());
//			}
//		}
//		super.notifyDataSetChanged();
//	}
//
//	@Override
//	public int getCount() {
//		int size = 0;
//		if (mArrayList != null && mArrayList.size() > 0) {
//			size = mArrayList.size();
//		}
//		return size;
//	}
//
//	@Override
//	public Object getItem(int position) {
//		return position;
//	}
//
//	@Override
//	public long getItemId(int position) {
//		return position;
//	}
//
//	@SuppressLint("InflateParams")
//	private View createViewByMessage(ChatMessage message, int position) {
//		int direction = message.getDirection();
//
//		switch (message.getMessageType()) {
//		case Constants.Chat.CHAT_MESSAGE_TYPE_TEXT:
//			return direction == Constants.Chat.CHAT_DIRECTION_RECEIVE ? mLayoutInflater
//					.inflate(R.layout.chat_item_receive_txt, null)
//					: mLayoutInflater
//							.inflate(R.layout.chat_item_send_txt, null);
//		case Constants.Chat.CHAT_MESSAGE_TYPE_IMAGE:
//			return direction == Constants.Chat.CHAT_DIRECTION_RECEIVE ? mLayoutInflater
//					.inflate(R.layout.chat_item_receive_image, null)
//					: mLayoutInflater.inflate(R.layout.chat_item_send_image,
//							null);
//
//		case Constants.Chat.CHAT_MESSAGE_TYPE_AUDIO:
//			return direction == Constants.Chat.CHAT_DIRECTION_RECEIVE ? mLayoutInflater
//					.inflate(R.layout.chat_item_receive_voice, null)
//					: mLayoutInflater.inflate(R.layout.chat_item_send_voice,
//							null);
//		default:
//			// 默认文本
//			return direction == Constants.Chat.CHAT_DIRECTION_RECEIVE ? mLayoutInflater
//					.inflate(R.layout.chat_item_receive_txt, null)
//					: mLayoutInflater
//							.inflate(R.layout.chat_item_send_txt, null);
//		}
//	}
//
//	@SuppressLint("InflateParams")
//	@Override
//	public View getView(final int position, View convertView, ViewGroup parent) {
//
//		final ChatMessage chatMessage = mArrayList.get(position);
//		int msgType = chatMessage.getMessageType();
//		int direction = chatMessage.getDirection();
//
//		final ViewHolder holder;
//
//		if (convertView == null) {
//			holder = new ViewHolder();
//			convertView = createViewByMessage(chatMessage, position);
//
//			// image
//			TextView timeTextView = (TextView) convertView
//					.findViewById(R.id.timeTextView);
//			// user
//			CircularImageView headIconImageView = (CircularImageView) convertView
//					.findViewById(R.id.headIconImageView);
//			TextView nameTextView = (TextView) convertView
//					.findViewById(R.id.nameTextView);
//			// content
//			LinearLayout contentLayout = (LinearLayout) convertView
//					.findViewById(R.id.contentLayout);
//
//			holder.timeTextView = timeTextView;
//			holder.headIconImageView = headIconImageView;
//			holder.nameTextView = nameTextView;
//
//			holder.contentLayout = contentLayout;
//
//			if (msgType == Constants.Chat.CHAT_MESSAGE_TYPE_IMAGE) {
//				ImageView contentImageView = (ImageView) convertView
//						.findViewById(R.id.contentImageView);
//				holder.contentImageView = contentImageView;
//			} else if (msgType == Constants.Chat.CHAT_MESSAGE_TYPE_AUDIO) {
//				// voice audio
//				ImageView contentVoiceImageView = (ImageView) convertView
//						.findViewById(R.id.contentVoiceImageView);
//				// voice
//				TextView voiceTimeTextView = (TextView) convertView
//						.findViewById(R.id.voiceTimeTextView);
//
//				holder.contentVoiceImageView = contentVoiceImageView;
//				holder.voiceTimeTextView = voiceTimeTextView;
//
//				if (direction == Constants.Chat.CHAT_DIRECTION_RECEIVE) {
//					ImageView voiceReadImageView = (ImageView) convertView
//							.findViewById(R.id.voiceReadImageView);
//					holder.voiceReadImageView = voiceReadImageView;
//				}
//			} else {
//				// text
//				TextView contentTextView = (TextView) convertView
//						.findViewById(R.id.contentTextView);
//				holder.contentTextView = contentTextView;
//			}
//
//			// send
//			if (direction == Constants.Chat.CHAT_DIRECTION_SEND) {
//				ProgressBar sendContentProgressBar = (ProgressBar) convertView
//						.findViewById(R.id.sendContentProgressBar);
//				ImageView sendContentReImageView = (ImageView) convertView
//						.findViewById(R.id.sendContentReImageView);
//
//				holder.sendContentProgressBar = sendContentProgressBar;
//				holder.sendContentReImageView = sendContentReImageView;
//			}
//
//			convertView.setTag(holder);
//		} else {
//			holder = (ViewHolder) convertView.getTag();
//		}
//
//		// =================================================================================
//		// time show
//		if (position > 0) {
//			if (DateUtil.isCloseEnough(chatMessage.getSendTime(), mArrayList
//					.get(position - 1).getSendTime())) {
//				holder.timeTextView.setVisibility(View.GONE);
//			} else {
//				holder.timeTextView.setText(DateUtil
//						.formatChatDateTime(chatMessage.getSendTime()));
//				holder.timeTextView.setVisibility(View.VISIBLE);
//			}
//		} else {
//			holder.timeTextView.setVisibility(View.VISIBLE);
//			holder.timeTextView.setText(DateUtil.formatChatDateTime(chatMessage
//					.getSendTime()));
//		}
//
//		// user
//		holder.nameTextView.setVisibility(View.GONE);
//
//		if (direction == Constants.Chat.CHAT_DIRECTION_SEND) {
//			holder.headIconImageView
//					.setImageResource(R.drawable.app_ic_default_avatar);
//			// self
//			// if (!TextUtils.isEmpty(item.getHostProfilePicId())) {
//			// UniversalImageLoadTool.disPlay(item.getHostProfilePicId(),
//			// holder.sendHeadIconImageView,
//			// R.drawable.app_ic_default_avatar);
//			// }
//			String userId = LoginUtil.getUserId();
//			String filePath = SdLocal.getUserPath(mContext, userId);
//			String imageUrl = Setting.getHeadIconUrl(userId);
//			if (!TextUtils.isEmpty(imageUrl)) {
//				BitmapManager.getInstance().loadBitmap(imageUrl, filePath,
//						holder.headIconImageView, null, true);
//			}
//		} else {
//			holder.headIconImageView
//					.setImageResource(R.drawable.chat_doctor_icon_default);
//			if (!TextUtils.isEmpty(chatMessage.getGuestProfilePicId())) {
//				UniversalImageLoadTool
//						.disPlay(Setting.getImageUrl(chatMessage
//								.getGuestProfilePicId()),
//								holder.headIconImageView,
//								R.drawable.chat_doctor_icon_default);
//			}
//		}
//
//		// content
//		Media media = chatMessage.getMedia();
//		String mediaUrl = "";
//		switch (msgType) {
//		case Constants.Chat.CHAT_MESSAGE_TYPE_IMAGE:// image
//
//			if (media != null && media.getFullName() != null) {
//				mediaUrl = media.getFullName();
//			}
//
//			if (!TextUtils.isEmpty(mediaUrl)) {
//				UniversalImageLoadTool.disPlay(
//						ImageUtilBase.getFileImageUrl(mediaUrl),
//						holder.contentImageView, R.drawable.default_icon_small);
//			}
//
//			final String tempMediaUrl = mediaUrl;
//			holder.contentLayout.setOnClickListener(new View.OnClickListener() {
//
//				@Override
//				public void onClick(View v) {
//					contentImageClick(tempMediaUrl);
//				}
//			});
//
//			break;
//		case Constants.Chat.CHAT_MESSAGE_TYPE_AUDIO:// voice
//
//			int duration = chatMessage.getMedia().getDuration();
//			String time = String.valueOf(duration / 1000 == 0 ? 1
//					: duration / 1000) + "''";
//			holder.voiceTimeTextView.setText(time);
//
//			LinearLayout.LayoutParams param = (LinearLayout.LayoutParams) holder.contentLayout
//					.getLayoutParams();
//			handleVoiceTextWidth(param, time);
//
//			if (direction == Constants.Chat.CHAT_DIRECTION_RECEIVE) {
//				if (!chatMessage.isRead()) {
//					holder.voiceReadImageView.setVisibility(View.VISIBLE);
//				} else {
//					holder.voiceReadImageView.setVisibility(View.GONE);
//				}
//			}
//
//			holder.contentLayout.setOnClickListener(new VoicePlayClickListener(
//					chatMessage, holder.contentVoiceImageView,
//					holder.voiceReadImageView, mContext));
//			break;
//		case Constants.Chat.CHAT_MESSAGE_TYPE_VIDEO:// video
//			break;
//		default:
//			// default text
//			// 在线咨询
//			if (mType == ChatConst.TYPE_ONLINE_CHAT_ONLINE) {
//
//				if(direction == Constants.Chat.CHAT_DIRECTION_SEND)
//				{
//					holder.contentTextView.setText(chatMessage.getContent());
//				}else{
//					BeanStaffEntity staffEntity = BeanStaffEntity
//							.handleContent(chatMessage.getContent());
//					if (staffEntity != null) {
//						holder.contentTextView.setText(staffEntity.Text);
//					} else {
//						holder.contentTextView.setText("");
//					}
//				}
//
//			} else {
//				// 医生聊天
//				holder.contentTextView.setText(chatMessage.getContent());
//			}
//			// ========================
//
//			holder.contentLayout.setOnClickListener(new View.OnClickListener() {
//
//				@Override
//				public void onClick(View v) {
//
//					String content = holder.contentTextView.getText()
//							.toString();
//					contentTextClick(content);
//				}
//			});
//			break;
//		}
//
//		// send status
//		if (direction == Constants.Chat.CHAT_DIRECTION_SEND) {
//
//			holder.sendContentReImageView
//					.setOnClickListener(new View.OnClickListener() {
//
//						@Override
//						public void onClick(View v) {
//							reSendContentCheck(position, chatMessage);
//						}
//					});
//
//			int sendStatus = chatMessage.getSendStatus();
//			if (sendStatus == Constants.Chat.CHAT_SEND_STATUS_SENT) {
//				holder.sendContentProgressBar.setVisibility(View.VISIBLE);
//				holder.sendContentReImageView.setVisibility(View.GONE);
//			} else if (sendStatus == Constants.Chat.CHAT_SEND_STATUS_LOST
//					|| sendStatus == Constants.Chat.CHAT_SEND_STATUS_UPLOAD_FAILED) {
//				holder.sendContentProgressBar.setVisibility(View.GONE);
//				holder.sendContentReImageView.setVisibility(View.VISIBLE);
//			} else {
//				holder.sendContentProgressBar.setVisibility(View.GONE);
//				holder.sendContentReImageView.setVisibility(View.GONE);
//			}
//		}
//
//		if (mType == ChatConst.TYPE_ONLINE_CHAT_ONLINE) {
//			// 在线咨询聊天，不支持发送文件
//
//		} else {
//			// 医生聊天，支持发送文件
//		}
//
//		return convertView;
//	}
//
//	@SuppressWarnings("deprecation")
//	@SuppressLint("NewApi")
//	private void contentTextClick(String content) {
//		ManagerClipborad.getInstance().getClipboardM(mContext).setText(content);
//		UIHelper.showToast(mContext, "拷贝成功");
//	}
//
//	/**
//	 * 图片点击
//	 *
//	 * @param mediaUrl
//	 */
//	private void contentImageClick(String mediaPath) {
//
//		String[] filePathArray = new String[mImageArrayList.size()];
//		int index = 0;
//		for (int i = 0; i < mImageArrayList.size(); i++) {
//			String path = mImageArrayList.get(i);
//			filePathArray[i] = mImageArrayList.get(i);
//
//			if (path.equals(mediaPath)) {
//				index = i;
//			}
//		}
//
//		Intent intent = new Intent(mContext, AppImageBroswerActivity.class);
//		intent.putExtra("isShowTopbar", false);
//		intent.putExtra("index", index);
//		intent.putExtra("filePathArray", filePathArray);
//		((BaseFragmentActivity) mContext).startActivity(intent);
//	}
//
//	private void handleVoiceTextWidth(LinearLayout.LayoutParams params,
//			String time) {
//		int duration = Integer.valueOf(time.split("''")[0]);
//
//		if ((time.split("''")[0]).contains("'")) {
//			params.width = 350;
//			return;
//		}
//		if (duration < 3) {
//			params.width = 130;
//		} else if (duration == 3) {
//			params.width = 140;
//		} else if (duration == 4) {
//			params.width = 150;
//		} else if (duration == 5) {
//			params.width = 160;
//		} else if (duration == 6) {
//			params.width = 170;
//		} else if (duration == 7) {
//			params.width = 180;
//		} else if (duration == 8) {
//			params.width = 190;
//		} else if (duration == 9) {
//			params.width = 200;
//		} else if (duration > 9 && duration < 20) {
//			params.width = 230;
//		} else if (duration > 19 && duration < 30) {
//			params.width = 250;
//		} else if (duration > 29 && duration < 40) {
//			params.width = 270;
//		} else if (duration > 39 && duration < 50) {
//			params.width = 290;
//		} else if (duration > 49 && duration < 60) {
//			params.width = 310;
//		} else if (duration >= 60000) {
//			params.width = 350;
//		}
//	}
//
//	private void reSendContentCheck(final int position, ChatMessage chatMessage) {
//		String message = "您确定要重发这条消息吗？";
//		Activity currentActivity = (Activity) mContext;
//		MyDialog dialog = new MyDialog(currentActivity)
//				.setMessage(message)
//				.setNegativeButton(R.string.app_cancel,
//						new View.OnClickListener() {
//
//							@Override
//							public void onClick(View v) {
//
//							}
//						})
//				.setPositiveButton(R.string.app_ok, new View.OnClickListener() {
//
//					@Override
//					public void onClick(View v) {
//						reSendContent(position);
//					}
//				});
//
//		dialog.create(null);
//		dialog.showMyDialog();
//	}
//
//	private void reSendContent(int position) {
//		if (mChatSendListener != null) {
//			mChatSendListener.reSendContent(position);
//		}
//	}
//
//	private static class ViewHolder {
//		TextView timeTextView;
//
//		CircularImageView headIconImageView;
//		TextView nameTextView;// ?????
//
//		LinearLayout contentLayout;
//		TextView contentTextView;
//		ImageView contentImageView;
//		ImageView contentVoiceImageView;
//
//		ImageView voiceReadImageView;
//		TextView voiceTimeTextView;
//
//		// send
//		ProgressBar sendContentProgressBar;
//		ImageView sendContentReImageView;
//
//	}
//}
